home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 May / CMCD0505.ISO / Software / Demo / DesktopX / objects / killer_news.dxpack / {E9A66F47-50C7-4135-9D1F-CF146B81BFE7}.DXScript2 < prev    next >
Extensible Markup Language  |  2004-04-15  |  5KB  |  143 lines

  1. <?xml version="1.0"?>
  2. <!--DXScript Data File.  Version 2.0-->
  3. <DXScript>
  4.     <Script><![CDATA[Dim zone
  5. zone=Array("World","Africa","Americas","Asia-Pacific","Europe","Middle East","South Asia")
  6. Dim zoneURL(6)
  7. zoneURL(0)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/rss091.xml"
  8. zoneURL(1)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/africa/rss091.xml"
  9. zoneURL(2)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/americas/rss091.xml"
  10. zoneURL(3)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/asia-pacific/rss091.xml"
  11. zoneURL(4)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/europe/rss091.xml"
  12. zoneURL(5)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/middle_east/rss091.xml"
  13. zoneURL(6)="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/south_asia/rss091.xml"
  14. Dim zonetext(6)        'the complete xml feed for each zone
  15. Dim updatetime(6)
  16. Dim initialized        'whether or not the object has just been loaded
  17. Dim prefetchzone    'zone last read from news server
  18. Dim displayzone        'which zone is currently displayed
  19. Dim itemlink(7)        'stored urls for the currently displayed zone's news items
  20. Dim browsername
  21. Dim statustext
  22.  
  23. Sub Object_OnScriptEnter
  24.     statustext="retrieving news..."
  25.     If IsEmpty(Object.PersistStorage("browser")) Or Object.PersistStorage("browser")="" Then
  26.         browsername="iexplore.exe "
  27.     Else 
  28.         browsername=Object.PersistStorage("browser")&" "
  29.     End If
  30.     initialized=False
  31.     prefetchzone=6
  32.     Object.SetTimer 568,200000'get news from rss feed every 3 minutes 20 seconds, hehe
  33.     Object_OnTimer568
  34.     Object.SetTimer 570,60000'change displayed news every minute
  35. End Sub
  36.  
  37. Sub pickbrowser(b)
  38.     browsername=b
  39.     Object.PersistStorage("browser")=b
  40. End Sub
  41.  
  42.  
  43. Sub Object_OnTimer568
  44.     If prefetchzone<6 Then
  45.         prefetchzone=prefetchzone+1
  46.     Else prefetchzone=0
  47.     End If
  48.     getnews(prefetchzone)
  49. End Sub
  50.  
  51. Sub Object_OnTimer570
  52.     dz=CInt(displayzone)
  53.     If dz<6 Then
  54.         dz=dz+1
  55.     Else dz=0
  56.     End If
  57.     selectchannel(CStr(dz))
  58. End Sub
  59.  
  60. Sub getnews(z)
  61.     DesktopX.Object("k_news_status").Text="retrieving news..."
  62.     If System.InternetConnected Then
  63.         Set http = CreateObject("Microsoft.XmlHttp")
  64.         http.Open "GET",zoneURL(z), False
  65.         http.send ""
  66.         txt = http.responseText
  67.         zonetext(z) = Replace(txt, "'", "'")
  68.     End If
  69.     updatetime(z)=Now()
  70.     If initialized=False Then
  71.         displayzone=CStr(z)
  72.         displayitems(zonetext(z))
  73.         displayselected(CStr(z))        
  74.         initialized=True
  75.     End If
  76.     DesktopX.Object("k_news_status").Text=""
  77. End Sub
  78.  
  79. Sub selectchannel(c)
  80.     If zonetext(c)="" Then 
  81.         initialized=False
  82.         getnews(c)
  83.     Else
  84.         displayzone=c
  85.         displayitems(zonetext(c))    
  86.     End If
  87.     displayselected(c)
  88. End Sub
  89.  
  90. Sub displayselected(z)
  91.     For x=0 To 6
  92.         If CStr(x)=z Then
  93.             DesktopX.Object("k_channel"&x).TextColor=RGB(83,87,119)
  94.             DesktopX.Object("k_bbc_mapselect").State=x
  95.             DesktopX.Object("k_bbc_maplineselect").State=x
  96.             DesktopX.Object("k_bbc_mapover").State="Default"
  97.         Else    
  98.             DesktopX.Object("k_channel"&x).TextColor=RGB(128,128,128)
  99.         End If
  100.     Next        
  101. End Sub
  102.  
  103.  
  104. Sub launchitem(n)
  105.     On Error Resume Next
  106.     Set WshShell = CreateObject("WScript.Shell")
  107.     WshShell.Run browsername & itemlink(n)
  108. End Sub
  109.  
  110. Sub displayitems(txt)
  111.     marker=1'initialise marker
  112.     For x=1 To 7
  113.         marker=InStr(txt,"</item>")
  114.         If marker<>0 Then
  115.             itemtext=xmlstripper("item",txt)
  116.             itemlink(x)=xmlstripper("link", itemtext)
  117.             itemtitle=xmlstripper("title", itemtext)
  118.             DesktopX.ScriptObject("k_newstext" & x).Object.Text = "- "&itemtitle&" -"
  119.             txt=Right(txt,Len(txt)-marker-6)    
  120.         Else
  121.             DesktopX.ScriptObject("k_newstext" & x).Object.Text = ""'hide items if no news exists
  122.         End If            
  123.     Next
  124.     Object.Sleep 50
  125.     checkdimensions    
  126. End Sub
  127.  
  128. Sub checkdimensions
  129.     w=0
  130.     For x=1 To 7
  131.         If DesktopX.ScriptObject("k_newstext" & x).Object.Width>w Then w=DesktopX.ScriptObject("k_newstext" & x).Object.Width            
  132.     Next
  133.     DesktopX.Object("k_bbc_rbracket").Width=w+12
  134.     d=DesktopX.ScriptObject("k_bbcworldnewsback").Object.Width-DesktopX.Object("k_bbc_rbracket").Right
  135.     If d<16 Then DesktopX.ScriptObject("k_bbcworldnewsback").Object.Width=DesktopX.Object("k_bbc_rbracket").Right+16
  136. End Sub
  137.  
  138. Function xmlstripper(param, string)
  139.     datastart = InStr(string, param) + Len(param) + 1
  140.     datalength = Instr(string, "/" & param) - datastart - 1
  141.     xmlstripper = Mid(string, datastart, datalength)
  142. End Function]]></Script><Globals><Editor><PropPane>0</PropPane><EditorLeft>14</EditorLeft><EditorTop>124</EditorTop><EditorRight>1251</EditorRight><EditorBottom>919</EditorBottom></Editor><Object><LanguageCLSID>{B54F3741-5B07-11CF-A4B0-00AA004A55E8}</LanguageCLSID><ControlCLSID>{00000000-0000-0000-0000-000000000000}</ControlCLSID><ControlObjWidth>64</ControlObjWidth><ControlObjHeight>64</ControlObjHeight><RunState>1</RunState><ScriptHostVersion>2</ScriptHostVersion></Object></Globals></DXScript>
  143.